﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace App.Web.Utility
{
    public class AppConstants
    {
        #region Area Definitions
        public class Area
        {
            public const String ADMIN = "Admin";
            public const String PRIVATE = "Private";
            public const String PUBLIC = "";//"Public";
        }
        public static class RouteNames
        {            
            public class Public
            {
                public const String DEFAULT = "Public_default";
                public const String ITEM_DETAILS = "Public_Item_Details";
                public const String CONTENT_DETAILS = "Public_Content_Details";
                public const String COMPANY_DETAILS = "Public_Company_Details";
                public const String COMPANY_PRODUCT_DETAILS = "Public_Company_Product_Details";
            }            
        }
        #endregion

        #region UI CSS Classes
        public class UI
        {
            public const String ERROR_MESSAGE_CLASS = "ErrorMessageBox";
            public const String MESSAGE_BOX_CLASS = "InfoMessageBox";
            public const String DYNAMIC_CONTROL_PREFIX = "DP.";
            public const String NO_IMAGE = "no_image.gif";
            public const String NO_LOGO = "no_logo.gif";
            public const String BLANK_FIELD_DATA = "__UnKnown";
        }
        #endregion

        public class Directories
        {
            public const String PRODUCT_IMAGES = "/UploadedImages/ProductImages";
            public const String COMPANY_LOGO = "/UploadedImages/CompanyLogo";
            public const String PRODUCT_PROPERTY_GROUP_ICONS = "/UploadedImages/ProductImages/PropertyGroupIcons";
            public const String TEMP = "/Temp";
            //public const String COMPANY_IMAGES = "/UploadedImages/CompanyLogos";
            public const String EMAIL_TEMPLATES = "/EmailTemplates";
            public const String IMAGES = "/content/images";
            public const String LUCENE_PRODUCT_INDEX = "/LuceneIndex/Product";
            public const String LUCENE_CATEGORY_INDEX = "/LuceneIndex/Category";
        }

        public static class Sections
        {
            public const String PAGE_HEAD = "PageHeadSection";
            public const String LEFT_MENU = "LeftMenu";
            public const String LEFT_SIDEBAR = "LeftSideBar";
            public const String RIGHT_SIDEBAR = "RightSideBar";
        }

        #region Value Formats
        public class ValueOf
        {            
            public const String DECIMAL_FORMAT = "{0:0,0.00}";
            public const String DECIMAL_FORMAT_FOR_TEXTBOX = "{0:0}";
            //public const string DECIMAL_FORMAT_CALCULATION = "{0:00.#############}";
            //public const String DECIMAL_FORMAT_CALCULATION = "{0:00.###}";
            public const String DATE_FROMAT_DISPLAY = "MMMM dd, yyyy";
            //public const String DATE_FROMAT_FOR_FILE_NAME = "ddMMyyyy";
            //public const String DATE_SHORT_DISPLAY = "dd/MM/yyyy";
            //public const String REPORT_DATE_FORMAT = "d MMM yyyy";
            //public const String DATE_FROMAT_DISPLAY_WITH_TIME = "dddd, MMMM dd, yyyy hh:mm:ss tt";
        }
        #endregion

        #region Validation Constants
        public static class Validation
        {
            public const String PRODUCT_CODE = "Code";
            public const String PRODUCT_UPC = "DuplicateUPC";
            public const String WRONG_ACTIVATION_REQUEST = "WrongActivation";
            public const String INVALID_USER = "InvalidUser";
        }
        #endregion

        #region View Data Keys 
        public static class ViewDataKeys
        {
            public const String HAS_ACTIVATED = "HasActivated";
            public const String LIST_CONFIG = "ListConfig";
            public const String IMAGE_UPLOAD_ERROR = "ImageUploadError";
            public const String ORIGINAL_FILE_NAME = "OriginalFileName";
            public const String TOP_VIEWED_PRODUCTS = "TopViewedProducts";
            public const String COMPANY_KEY = "CompanyKey";
            public const String RECENT_PRODUCTS = "RecentProducts";
            public const String COMPANY_LIST = "CompanyList";
            public const String ADDED = "Added";
            public const String SAVED = "Saved";
            public const String HAS_VALIDATION_ERROR = "HasValidationError";
            public const String SUB_MODEL = "SubModel";
            public const String CALCULATE_OCCURANCE = "CalculateOccurance";
        }
        #endregion View Data Keys

        #region Email Templates
        public class EmailTemplate
        {
            public const String COMMON = "/EmailTemplates/Common.html";
        }
        /// <summary>
        /// Custom Tag Constants in the Email Templates
        /// </summary>
        public class ETConstants
        {
            public const String MESSAGE = "[*MESSAGE*]";
            public const String DOMAIN = "[*DOMAIN*]";
        }
        #endregion
    }
}